package thread;
/*

 */

public class ThreadDemo1 {
    public static void main(String[] args) {
        Thread t1 = new MyThread1();
        Thread t2 = new MyThread2();
        /*
        启动线程要调用线程的start方法，而不是直接调用run方法
        当我们调用一个线程的start方法后，县城就启动了，随后run方法会很快被自动执行。
        */
        t1.start();
        t2.start();
    }
}

/**
 * 这种方式的优点：
 * 结构简单，适合匿名内部类方式创建
 *
 * 缺点：
 * 1：由于java是单继承的，这导致如果我们继承了Thread就无法再继承其他类去复用方法了。
 * 2：重写run方法，将线程要执行的任务定义在线程中，这导致线程与任务是紧耦合的。
 */
class MyThread1 extends Thread{
    public void run(){
        for (int i=0;i<1000;i++){
            System.out.println("你是谁啊?");
        }
    }
}
class   MyThread2 extends Thread{
    public void run(){
        for (int i=0;i<1000;i++){
            System.out.println("开门，查水表的!");
        }
    }
}
